package array

// 创建一个按顺序排列的唯一值的数组。所有给定数组的元素值使用SameValueZero做等值比较。（注： arrays（数组）的并集，按顺序返回，返回数组的元素是唯一的）
func Union(arrays ...[]T) []T {
	var ret []T
	for _, array := range arrays {
		for _, value := range array {
			var has = false
			if idx := IndexOf(ret, value); idx >= 0 {
				has = true
			}
			if !has {
				ret = append(ret, value)
			}
		}
	}
	return ret
}
